﻿
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- saved from url=(0014)about:internet -->
<html xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:mssdk="winsdk" xmlns:script="urn:script" xmlns:build="urn:build" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="Description" content="The !usbkd._ehciregs command displays the operational and root hub port status registers of a USB EHCI host controller."/>
<meta name="MSHAttr" content="PreferredSiteName:MSDN"/>
<meta name="MSHAttr" content="PreferredLib:/library/windows/hardware"/>
<title>!usbkd._ehciregs</title>



<link rel="STYLESHEET" type="text/css" HREF="../common/backsdk4.css"/>





<style>
html,div { margin: 0; padding: 0;}

body {
	padding: 0px;
	margin: 0px;
	overflow: auto;
	height: 100%;
}

#winchm_template_button{
	float: right;
	width: 93px;
	top: 7px;
	position: relative;
	text-align: right;
	right: 5px;
	height: auto;
}

#winchm_template_top{
	padding: 0px;
	margin: 0px;
	border-bottom: 1px solid #9B9B9B;
	background-color: #B1CEFE;
}

#winchm_template_navigation{
	margin: 0px;
	padding-top: 7px;
	padding-left: 7px;
	padding-bottom: 3px;
	padding-right: 0px;
	font-size: 8.5pt;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: normal;
	color: #585858;
}

#winchm_template_title{
	margin: 0px;
	padding-top: 4px;
	padding-left: 7px;
	padding-bottom: 7px;
	padding-right: 0px;
	font-size: 18px; 
	font-family: Verdana, Geneva, sans-serif;
	color: #363636;
}

#winchm_template_content{
	margin-top: 20px;
	margin-left: 15px;
	margin-bottom: 20px;
	margin-right: 15px;
	width: auto  !important;
	width: 100%;
}

#winchm_template_footer{
	border-width: 1px;
	border-color: #B1CEFE;
	border-top-style: solid;
	margin-top: 15px;
	margin-left: 15px;
	margin-bottom: 20px;
	margin-right: 15px;
	padding-top: 7px;
	padding-left: 0px;
	padding-bottom: 0px;
	padding-right: 0px;
	font-family: arial, helvetica, sans-serif;
	font-size: 8.5pt;
	color: #696969;
	width: auto;
	text-align: left;
}


#winchm_template_container{
	margin: 0px;
	padding: 0px;
	position: static;
	padding-bottom: 3px;
	overflow: auto;
	background-color: #FFFFFF;
}


@media print
{
#winchm_template_container{
	position: static;	
	margin: 0px;
	padding: 5px;
	
	width: auto;
	height: auto;
	overflow: auto;
}
#winchm_template_button{
visibility:hidden;
}
}

#winchm_template_navigation A:link	{text-decoration: none; color:#004080}
#winchm_template_navigation A:visited  {text-decoration: none; color: #004080}
#winchm_template_navigation A:active {text-decoration: none; color: #004080 }
#winchm_template_navigation A:hover {text-decoration: none;color: #0080FF}

A:link	{text-decoration: underline; color:#0033CC}
A:visited  {text-decoration: underline; color: #0033CC}
A:active {text-decoration: underline; color: #0033CC }
A:hover {text-decoration: underline;color: #FF0000;}
</style>
<script type="text/javascript">
function isMobile(){
Agent = window.navigator.userAgent;
if (Agent.indexOf("iPhone")>=1 || Agent.indexOf("iPad")>=1 || Agent.indexOf("iPod")>=1 || Agent.indexOf("Android")>=1){
return true;
}else{
return false;	
}

}
function d_onresize(){
if (window.navigator.userAgent.indexOf("MSIE")>=1){
document.getElementById('winchm_template_container').style.pixelWidth = document.body.offsetWidth - 3;
document.getElementById('winchm_template_container').style.pixelHeight = document.body.offsetHeight - document.getElementById('winchm_template_top').offsetHeight - 4;
}
document.getElementById('winchm_template_container').style.top = document.getElementById('winchm_template_top').offsetHeight + 'px';
}

function d_onbeforeprint(){
document.getElementById('winchm_template_container').style.width = 'auto';
document.getElementById('winchm_template_container').style.height = 'auto';
}

function d_onafterprint(){
d_onresize();
}

if(!isMobile()){

window.onload = d_onresize;
window.onresize = d_onresize;
window.onbeforeprint = d_onbeforeprint;
window.onafterprint = d_onafterprint;

document.write("<style>\n");
document.write("body {overflow: hidden;}\n");
document.write("#winchm_template_container {position: absolute;overflow: auto;top : 0px;right: 0px;bottom: 0px;left: 0px;}\n");
document.write("</style>\n");
}

</script>
</head>
<body><script language="JavaScript" type="text/JavaScript">
function syn(){
if(parent.nav.tree){
 if(parent.nav.tree.loaded){
  parent.nav.tree.selectNode(2559);
 }else{
  setTimeout("syn()",500);
}
  }else{
  setTimeout("syn()",500);
  }}
if(parent!=self){
  setTimeout("syn()",100);
}else{
  parent.location.href = "../../index.htm?page=debugger/_usbkd__ehciregs.htm";
}
originalOnload = window.onload;
if(originalOnload==null){
window.onload = function(){parent.contentLoaded = true;};
}else{
window.onload = function(){originalOnload();parent.contentLoaded = true;};
}
</script> 


<div id="winchm_template_top">
	<div id="winchm_template_button"><A href="_usbkd__ehciqh.htm" title="Previous topic"><img id="winchm_template_prev" alt="Previous topic" src="../template2/btn_prev_n.gif" border="0"></a><A href="_usbkd__ehcisitd.htm" title="Next topic"><img id="winchm_template_next" alt="Next topic" src="../template2/btn_next_n.gif" border="0"></a></div>
	<div id="winchm_template_navigation">Help &gt; 
<A href="introduction6.htm">Debugging Tools for Windows (WinDbg, KD, CDB, NTSD)</A> &gt; <A href="debugger_reference.htm">Debugger Reference</A> &gt; <A href="debugger_commands.htm">Debugger Commands</A> &gt; <A href="specialized_extensions.htm">Specialized Extension Commands</A> &gt; <A href="usb_2_0_extensions.htm">USB 2.0 Debugger Extensions</A> &gt; </div>
	<div id="winchm_template_title">!usbkd._ehciregs</div>
</div>
<div id="winchm_template_container">
	<div id="winchm_template_content"><div id="mainSection"><p>The  <b>!usbkd._ehciregs</b> command displays the operational and root hub port status registers of a USB EHCI host controller.</p>
<pre class="syntax"><b>!usbkd._ehciregs </b><i>StructAddr</i><b>[, </b><i>NumPorts</i><b>]</b></pre>
<h2><a id="ddk__devobj_dbg"></a><a id="DDK__DEVOBJ_DBG"></a>Parameters</h2>
<p></p>
<dl>
<dt><a id="_______StructAddr______"></a><a id="_______structaddr______"></a><a id="_______STRUCTADDR______"></a>       <i>StructAddr</i>      </dt>
<dd>
<p>Address of a <b>usbehci!_HC_OPERATIONAL_REGISTER</b> structure. To find the address of a <b>usbehci!_HC_OPERATIONAL_REGISTER</b> structure, use <a href="#Bookmark2580"><b>!usbkd.usbhcdlist</b></a>.</p>
</dd>
<dt><a id="_______NumPorts______"></a><a id="_______numports______"></a><a id="_______NUMPORTS______"></a>       <i>NumPorts</i>      </dt>
<dd>
<p>The number of root hub port status registers to display.</p>
</dd>
</dl>
<h2><a id="DLL"></a><a id="dll"></a>DLL</h2>
<p>Usbkd.dll
     </p>
<h2>Examples</h2>
<p>Here is one way to get the address of a <b>usbehci!_HC_OPERATIONAL_REGISTER</b> structure. First enter <a href="#Bookmark2580"><b>!usbkd.usbhcdlist</b></a>.</p>
<pre class="syntax" xml:space="preserve"><code>0: kd&gt; !usbkd.usbhcdlist
MINIPORT List @ fffff80001e5bbd0

List of EHCI controllers
-------------------------
!drvobj ffffe00001fd33a0 dt USBPORT!_USBPORT_MINIPORT_DRIVER ...
...
02. Xxxx Corporation PCI: VendorID Xxxx DeviceID Xxxx RevisionId 0002
    !devobj ffffe00001ca1050
    !ehci_info ffffe00001ca11a0
    Operational Registers ffffd000228bf020</code></pre>
<p>In the preceding output,<code> ffffd000228bf020</code> is the address of a <b>_HC_OPERATIONAL_REGISTER</b> structure.</p>
<p>Now pass the structure address to <b>!_ehciregs</b>. In this example, the second argument limits the display to two root hub port status registers.</p>
<pre class="syntax" xml:space="preserve"><code>0: kd&gt; !usbkd._ehciregs ffffd000228bf020, 2
*(ehci)HC_OPERATIONAL_REGISTER ffffd000228bf020
	USBCMD 00010001
	.HostControllerRun: 1
	.HostControllerReset: 0
	.FrameListSize: 0
	.PeriodicScheduleEnable: 0
	.AsyncScheduleEnable: 0
	.IntOnAsyncAdvanceDoorbell: 0
	.HostControllerLightReset: 0
	.InterruptThreshold: 1
	.ParkModeEnable: 0
	.ParkModeCount: 0

	USBSTS 00002008
	.UsbInterrupt: 0
	.UsbError: 0
	.PortChangeDetect: 0
	.FrameListRollover: 1
	.HostSystemError: 0
	.IntOnAsyncAdvance: 0
	----
	.HcHalted: 0
	.Reclimation: 1
	.PeriodicScheduleStatus: 0
	.AsyncScheduleStatus: 0

	USBINTR 0000003f
	.UsbInterrupt: 1
	.UsbError: 1
	.PortChangeDetect: 1
	.FrameListRollover: 1
	.HostSystemError: 1
	.IntOnAsyncAdvance: 1
	PeriodicListBase dec8e000
	AsyncListAddr dec91000
	PortSC[0] 00001000
		PortConnect x0
		PortConnectChange x0
		PortEnable x0
		PortEnableChange x0
		OvercurrentActive x0
		OvercurrentChange x0
		ForcePortResume x0
		PortSuspend x0
		PortReset x0
		HighSpeedDevice x0
		LineStatus x0
		PortPower x1
		PortOwnedByCC x0
		PortIndicator x0
		PortTestControl x0
		WakeOnConnect x0
		WakeOnDisconnect x0
		WakeOnOvercurrent x0
	PortSC[1] 00001000
		PortConnect x0
		PortConnectChange x0
		PortEnable x0
		PortEnableChange x0
		OvercurrentActive x0
		OvercurrentChange x0
		ForcePortResume x0
		PortSuspend x0
		PortReset x0
		HighSpeedDevice x0
		LineStatus x0
		PortPower x1
		PortOwnedByCC x0
		PortIndicator x0
		PortTestControl x0
		WakeOnConnect x0
		WakeOnDisconnect x0</code></pre>
<h2><a id="see_also"></a>See also</h2>
<dl>
<dt><a href="#Bookmark2553">USB 2.0 Debugger Extensions</a></dt>
<dt><a href="http://go.microsoft.com/fwlink/p?LinkID=227351">Universal Serial Bus (USB) Drivers</a></dt></dl></div></div>	
	<div id="winchm_template_footer">Copyright &copy; 2019. All rights 
reserved. (To change the copyright info, just edit it in template.)</div>
</div>

</body>
</html>
